Many operations in computer systems support the notion of cancelation in one form or another. For example, a request to download a Web page could be canceled such that no further requests for data are issued and no more data is retrieved. A database transaction could be canceled, resulting in the transaction being rolled back. A synchronization barrier could be canceled, such that any threads waiting on the barrier would wake up and any future waits would be satisfied immediately. Other specific examples abound.
An abrupt termination of operations due to loss of electric power or severe hardware failure can stop multiple operations, but such a termination is not the same as a cancelation of the operations. Cancelation involves at least attempting to end each operation in a clean manner, by releasing memory and other resources claimed by the operation, updating logs, posting error messages or other user updates, notifying cooperating threads or processes of the operation's termination, closing open communication channels, and so on. Each type of operation will generally have specific goals to be accomplished as part of being canceled. Thus, canceling an I/O request differs from canceling a synchronization primitive, and so on.